package edu.asselvi.seguros.menu;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import edu.asselvi.seguros.exception.ESegurosErrosGeral;
import edu.asselvi.seguros.utils.Utils;

public class MenuPrincipal extends Utils{

	//para evitar java.util.NoSuchElementException (System.in deve ser instanciado apenas uma vez na classe)
	BufferedReader in = null;
	char opcao = '0';
	
	public MenuPrincipal() {		
		in = new BufferedReader(new InputStreamReader(System.in));
	}

	public void carrega() {

		/* ******************************************************
		 *               MENU PRINCIPAL
		 *******************************************************/
		
		boolean exit = false;
		do {
			System.out.println(" -- MENU PRINCIPAL --\n");
			System.out.println("[1] CADASTROS");
			System.out.println("[2] CONTRATOS");
			System.out.println("[3] RELATORIOS");
			System.out.println("\n[0] SAIR");

			try {
				opcao = in.readLine().charAt(0);
			} catch (IOException e) {
				//se acontecer um erro aqui o programa entra em loop infinito
				System.err.println(ESegurosErrosGeral.ERRO_TECLADO);
				System.exit(-1); //termina o programa imediatamente
			}
			
			switch (opcao) {
			case '1': new MenuCadastros(in).carrega(); break;
			case '2': new MenuContratos(in).carrega(); break;
			case '3': new MenuRelatorios(in).carrega(); break;
			
			case '0':	exit = true; break; //sai do programa
			default: System.out.println("OPCAO INVALIDA");
			}
		} while (!exit) ;

		if (in != null){
			try {
				in.close();
			} catch (IOException e) {
				System.err.println(ESegurosErrosGeral.ERRO_FECHAR_BUFFEREDREADER);
			}
		}

		clear();
		System.exit(0);

	}
}
